package JAVACORE_TRAINING.OOPS_CONCEPTS.ARRAY_AND_COLLECTIONS.DYNAMIC_ARRAYS.SAMPLES.SP02;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Views {
	public static void main(String[] args) {
		//1. Khai báo mảng động 2 chiều
		List<List<Double>> lisDouble = new ArrayList<List<Double>>();
		ArrayList<ArrayList<Double>> arrDouble = 
								new ArrayList<ArrayList<Double>>();
		
		//2. Đưa giá trị vào mảng động 2 chiều
		List<Double> lis01 = new ArrayList<>();
		List<Double> lis02 = new ArrayList<>();
		lis01.add(6.5);
		lis01.add(7.5);
		lis01.add(8.5);
		lis01.add(9.5);
		lis01.add(10.0);
		
		lis02.add(6.5);
		lis02.add(7.5);
		lis02.add(8.5);
		lis02.add(9.5);
		lis02.add(10.0);
		lisDouble.add(lis01);
		lisDouble.add(lis02);
		
		//3. Hiển thị dữ liệu trong mảng
		for (List<Double> lisD : lisDouble) {
			for (Double dValue : lisD) {
				System.out.println("lisDouble[i][j] = "+ dValue);
			}
		}
		
		System.out.println("----Nhập giá trị tự động ------");
		List<List<Double>> lisD = AddItem();
		System.out.println("----------Hiển thị mảng động ---------");
		for (List<Double> lis : lisD) {
			for (Double dValue : lis) {
				System.out.println("lisDouble[i][j] = "+ dValue);
			}
		}
		
		//4. Khai báo khởi tạo controllers
		Controllers objController = new Controllers();
		double dTotal = objController.ExecOfTotalElements(lisD);
		System.out.println("Total = "+ dTotal);		
	}
	
	static List<List<Double>> AddItem(){		
		Scanner sc = new Scanner(System.in);
		List<List<Double>> lisDouble = new ArrayList<List<Double>>();
		List<Double> lisD = new ArrayList<>();
		String strData = "";
		do{
			System.out.println("Mời nhập giá trị. Nhập E để thoát! ");
			strData = sc.nextLine();
			if(!strData.toLowerCase().equals("e")){
				lisD.add(Double.parseDouble(strData));
			}
		}while(!strData.toLowerCase().equals("e"));		
		lisDouble.add(lisD);
		return lisDouble;
	}
}
